GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( c6c6df...c74c01 )
by Florian
29s
created

Markers.init   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 11
rs 9.4285
1
/*jslint
2
  indent: 4
3
*/
4
5
/*global
6
  $,
7
  Conversion, Cookies, Coordinates, Lines, Marker,
8
  id2alpha, mytrans, showAlert, trackMarker
9
*/
10
11
var Markers = {};
12
Markers.m_map = null;
13
Markers.m_markers = null;
14
15
16
Markers.init = function (themap) {
17
    'use strict';
18
19
    this.m_map = themap;
20
    this.m_markers = new Array(26 * 10);
21
22
    var id;
23
    for (id = 0; id !== this.m_markers.length; id = id + 1) {
24
        this.m_markers[id] = new Marker(this, id);
25
    }
26
};
27
28
29
Markers.getSize = function () {
30
    'use strict';
31
32
    return this.m_markers.length;
33
};
34
35
36
Markers.isValid = function (id) {
37
    'use strict';
38
39
    return 0 <= id && id < this.m_markers.length;
40
};
41
42
43
Markers.getById = function (id) {
44
    'use strict';
45
46
    if (id < 0 || id >= this.m_markers.length) {
47
        return null;
48
    }
49
50
    return this.m_markers[id];
51
};
52
53
54
Markers.getUsedMarkers = function () {
55
    'use strict';
56
57
    var count = 0;
58
    this.m_markers.map(function (m) {
59
        if (!m.isFree()) {
60
            count = count + 1;
61
        }
62
    });
63
    return count;
64
};
65
66
67
Markers.getFreeMarkers = function () {
68
    'use strict';
69
70
    return this.getSize() - this.getUsedMarkers();
71
};
72
73
74
Markers.getFreeId = function () {
75
    'use strict';
76
77
    var id;
78
    for (id = 0; id < this.m_markers.length; id = id + 1) {
79
        if (this.m_markers[id].isFree()) {
80
            return id;
81
        }
82
    }
83
    return -1;
84
};
85
86
87
Markers.getNextUsedId = function (id) {
88
    'use strict';
89
90
    var i;
91
    for (i = id + 1; i < this.m_markers.length; i = i + 1) {
92
        if (!this.m_markers[i].isFree()) {
93
            return i;
94
        }
95
    }
96
    return -1;
97
};
98
99
100
Markers.removeById = function (id) {
101
    'use strict';
102
103
    if (id >= 0 && id < this.m_markers.length) {
104
        this.m_markers[id].clear();
105
    }
106
};
107
108
109
Markers.deleteAll = function () {
110
    'use strict';
111
112
    this.m_markers.map(
113
        function (m) {
114
            m.clear();
115
        }
116
    );
117
};
118
119
120
Markers.saveMarkersList = function () {
121
    'use strict';
122
123
    var ids = [];
124
    this.m_markers.map(
125
        function (m) {
126
            if (!m.isFree()) {
127
                ids.push(m.getId());
128
            }
129
        }
130
    );
131
    Cookies.set('markers', ids.join(":"), {expires: 30});
132
};
133
134
135
Markers.toString = function () {
136
    'use strict';
137
138
    var parts = [];
139
    this.m_markers.map(
140
        function (m) {
141
            if (!m.isFree()) {
142
                parts.push(m.toString());
143
            }
144
        }
145
    );
146
    return parts.join("*");
147
};
148
149
150
Markers.toXmlWpts = function () {
151
    'use strict';
152
153
    var id,
154
        data = '';
155
156
    for (id = 0; id < this.m_markers.length; id = id + 1) {
157
        if (this.m_markers[id].isFree()) {
158
            continue;
159
        }
160
        data += this.m_markers[id].toXmlWpt();
161
        data += '\n';
162
    }
163
164
    return data;
165
};
166
167
168
Markers.update = function () {
169
    'use strict';
170
171
    this.m_markers.map(
172
        function (m) {
173
            m.update();
174
        }
175
    );
176
};
177
178
179
Markers.handleMarkerCleared = function () {
180
    'use strict';
181
182
    if (this.getUsedMarkers() === 0) {
183
        $('#btnmarkers2').hide();
184
    }
185
186
    Lines.updateTotalDistance();
187
    this.saveMarkersList();
188
};
189
190
191
Markers.goto = function (id) {
192
    'use strict';
193
194
    trackMarker('goto');
195
196
    var m = this.getById(id);
197
    if (m) {
198
        this.m_map.setCenter(m.getPosition());
199
    }
200
};
201
202
203
Markers.center = function (id) {
204
    'use strict';
205
206
    trackMarker('center');
207
208
    var m = this.getById(id);
209
    if (m) {
210
        m.setPosition(this.m_map.getCenter());
211
    }
212
};
213
214
215
Markers.newMarker = function (coordinates, id, radius, name) {
216
    'use strict';
217
218
    radius = Math.max(radius, 0);
219
220
    if (id < 0 || id >= this.getSize() || !this.getById(id).isFree()) {
221
        id = this.getFreeId();
222
        if (id < 0) {
223
            showAlert(
224
                mytrans("dialog.error"),
225
                mytrans("dialog.toomanymarkers_error.content").replace(/%1/, Markers.getSize())
226
            );
227
            return null;
228
        }
229
    }
230
231
    var self = this,
232
        marker,
233
        div,
234
        nextid;
235
236
    if (!name) {
237
        name = "marker_" + id2alpha(id);
238
    }
239
240
    marker = this.getById(id);
241
    marker.initialize(this.m_map, name, coordinates, radius);
242
    div = this.createMarkerDiv(id);
243
244
    nextid = this.getNextUsedId(id);
245
    if (nextid < 0) {
246
        $('#dynMarkerDiv').append(div);
247
    } else {
248
        $(div).insertBefore('#dyn' + nextid);
249
    }
250
251
    $('#dyn' + id + ' > .edit').keydown(function (e) {
252
        if (e.which === 27) {
253
            self.leaveEditMode(id, false);
254
        } else if (e.which === 13) {
255
            self.leaveEditMode(id, true);
256
        }
257
    });
258
259
    $('#btnmarkers2').show();
260
    $('#btnmarkersdelete1').removeAttr('disabled');
261
    $('#btnmarkersdelete2').removeAttr('disabled');
262
263
    marker.update();
264
    this.saveMarkersList();
265
    Lines.updateLinesMarkerAdded();
266
267
    return marker;
268
};
269
270
271
Markers.createMarkerDiv = function (id) {
272
    'use strict';
273
274
    var iconw = 33,
275
        iconh = 37,
276
        offsetx = (id % 26) * iconw,
277
        offsety = Math.floor(id / 26) * iconh;
278
279
    return "<div id=\"dyn" + id + "\">" +
280
        "<table class=\"view\" style=\"width: 100%; vertical-align: middle;\">\n" +
281
        "    <tr>\n" +
282
        "        <td rowspan=\"3\" style=\"vertical-align: top\">\n" +
283
        "            <span style=\"width:" + iconw + "px; height:" + iconh + "px; float: left; display: block; background-image: url(img/markers.png); background-repeat: no-repeat; background-position: -" + offsetx + "px -" + offsety + "px;\">&nbsp;</span>\n" +
284
        "        </td>\n" +
285
        "        <td style=\"text-align: center\"><i class=\"fa fa-map-marker\"></i></td>\n" +
286
        "        <td class=\"name\" colspan=\"2\">marker</td>\n" +
287
        "    </tr>\n" +
288
        "    <tr>\n" +
289
        "        <td style=\"text-align: center\"><i class=\"fa fa-globe\"></i></td>\n" +
290
        "        <td class=\"coords\" colspan=\"2\">N 48° 00.123 E 007° 51.456</td>\n" +
291
        "    </tr>\n" +
292
        "    <tr>\n" +
293
        "        <td style=\"text-align: center\"><i class=\"fa fa-circle-o\"></i></td>\n" +
294
        "        <td class=\"radius\">16100 m</td>\n" +
295
        "        <td>\n" +
296
        "            <div class=\"btn-group\" style=\"padding-bottom: 2px; padding-top: 2px; float: right\">\n" +
297
        "            <button class=\"my-button btn btn-mini btn-warning\" data-i18n=\"[title]sidebar.markers.edit_marker\" type=\"button\"  onclick=\"Markers.enterEditMode(" + id + ");\"><i class=\"fa fa-edit\"></i></button>\n" +
298
        "            <button class=\"my-button btn btn-mini btn-danger\" data-i18n=\"[title]sidebar.markers.delete_marker\" type=\"button\" onClick=\"Markers.removeById(" + id + ");\"><i class=\"fa fa-trash-o\"></i></button>\n" +
299
        "            <button class=\"my-button btn btn-mini btn-info\" data-i18n=\"[title]sidebar.markers.move_to\" type=\"button\" onClick=\"Markers.goto(" + id + ");\"><i class=\"fa fa-search\"></i></button>\n" +
300
        "            <button class=\"my-button btn btn-mini btn-warning\" data-i18n=\"[title]sidebar.markers.center\" type=\"button\" onClick=\"Markers.center(" + id + ");\"><i class=\"fa fa-crosshairs\"></i></button>\n" +
301
        "            <button class=\"my-button btn btn-mini btn-success\" data-i18n=\"[title]sidebar.markers.project\" type=\"button\" onClick=\"projectFromMarker(" + id + ");\"><i class=\"fa fa-location-arrow\"></i></button>\n" +
302
        "            </div>\n" +
303
        "        </td>\n" +
304
        "    </tr>\n" +
305
        "</table>\n" +
306
        "<table class=\"edit\" style=\"display: none; width: 100%; vertical-align: middle;\">\n" +
307
        "    <tr>\n" +
308
        "        <td rowspan=\"4\" style=\"vertical-align: top\"><span style=\"width:" + iconw + "px; height:" + iconh + "px; float: left; display: block; background-image: url(img/markers.png); background-repeat: no-repeat; background-position: -" + offsetx + "px -" + offsety + "px;\">&nbsp;</span>\n" +
309
        "        <td style=\"text-align: center; vertical-align: middle;\"><i class=\"icon-map-marker\"></i></td>\n" +
310
        "        <td><input data-i18n=\"[title]sidebar.markers.name;[placeholder]sidebar.markers.name_placeholder\" class=\"name form-control input-block-level\" type=\"text\" style=\"margin-bottom: 0px;\" value=\"n/a\" /></td>\n" +
311
        "    </tr>\n" +
312
        "    <tr>\n" +
313
        "        <td style=\"text-align: center; vertical-align: middle;\"><i class=\"icon-globe\"></i></td>\n" +
314
        "        <td><input data-i18n=\"[title]sidebar.markers.coordinates;[placeholder]sidebar.markers.coordinates_placeholder\" class=\"coords form-control input-block-level\" type=\"text\" style=\"margin-bottom: 0px;\" value=\"n/a\" /></td>\n" +
315
        "    </tr>\n" +
316
        "    <tr>\n" +
317
        "        <td style=\"text-align: center; vertical-align: middle;\"><i class=\"icon-circle-blank\"></i></td>\n" +
318
        "        <td><input data-i18n=\"[title]sidebar.markers.radius;[placeholder]sidebar.markers.radius_placeholder\" class=\"radius form-control input-block-level\" type=\"text\" style=\"margin-bottom: 0px;\" value=\"n/a\" /></td>\n" +
319
        "    </tr>\n" +
320
        "    <tr>\n" +
321
        "        <td colspan=\"2\" style=\"text-align: right\">\n" +
322
        "            <button class=\"btn btn-small btn-primary\" type=\"button\" onclick=\"Markers.leaveEditMode(" + id + ", true);\" data-i18n=\"dialog.ok\">OK</button>\n" +
323
        "            <button class=\"btn btn-small\" type=\"button\" onclick=\"Markers.leaveEditMode(" + id + ", false);\" data-i18n=\"dialog.cancel\">CANCEL</button>\n" +
324
        "        </td>\n" +
325
        "    </tr>\n" +
326
        "</table>" +
327
        "</div>";
328
};
329
330
331
Markers.enterEditMode = function (id) {
332
    'use strict';
333
334
    trackMarker('edit');
335
    var m = this.getById(id);
336
    if (!m) {
337
        return;
338
    }
339
340
    $('#dyn' + id + ' > .edit .name').val(m.getName());
341
    $('#dyn' + id + ' > .edit .coords').val(Coordinates.toString(m.getPosition()));
342
    $('#dyn' + id + ' > .edit .radius').val(m.getRadius());
343
344
    $('#dyn' + id + ' > .view').hide();
345
    $('#dyn' + id + ' > .edit').show();
346
};
347
348
349
Markers.leaveEditMode = function (id, takenew) {
350
    'use strict';
351
352
    if (!takenew) {
353
        $('#dyn' + id + ' > .view').show();
354
        $('#dyn' + id + ' > .edit').hide();
355
        return;
356
    }
357
358
    var m = this.getById(id),
359
        name = $('#dyn' + id + ' > .edit .name').val(),
360
        s_coords = $('#dyn' + id + ' > .edit .coords').val(),
361
        s_radius = $('#dyn' + id + ' > .edit .radius').val(),
362
        coords = Coordinates.fromString(s_coords),
363
        radius = Conversion.getInteger(s_radius, 0, 100000000000),
364
        errors = [];
365
366
    name = name.replace(/[^a-zA-Z0-9-_]/g, "_");
367
368
    if (!coords) {
369
        errors.push(mytrans("sidebar.markers.error_badcoordinates").replace(/%1/, s_coords));
370
    }
371
    if (radius === null) {
372
        errors.push(mytrans("sidebar.markers.error_badradius").replace(/%1/, s_radius));
373
    }
374
375
    if (errors.length > 0) {
376
        showAlert(mytrans("dialog.error"), errors.join("<br /><br />"));
377
        return;
378
    }
379
380
    m.setNamePositionRadius(name, coords, radius);
381
    $('#dyn' + id + ' > .view').show();
382
    $('#dyn' + id + ' > .edit').hide();
383
};
384